The multi-joint robot has a multi-joint robot mechanism and a controller for controlling the mechanism. In this specification, a “multi joint robot mechanism” may be referred to as a “multi joint robot” or simply “robot”. The multi joint robot mechanism in this specification refers to a robot that comprises plural links and plural joints, wherein adjoining links are connected by a joint and at least two or more joints are disposed between a base link and an end link. The end link herein referred to is not necessarily limited to a link that is physically disposed at a distal end of the robot. The end link here refers to a link to which a target state vector is given. In a case with a multi joint robot provided with an arm including five fingers, for example, if a target vector of a palm link is given, the palm link corresponds to the herein referred “end link”, even though finger links are connected to the further distal end of the palm link. This specification defines that one degree of freedom is counted as one joint. For example, “joint” capable of rotating adjoining links about two axes is made of two joints.
The multi-joint robot having N joints (i.e. the multi-joint robot having N degrees of freedom) can make a current state vector of the end link follow a target state vector that is described in dimensions not higher than N by controlling each of the joints independently. In this specification, the expression “make a current state vector of the end link follow a target state vector” may be simplified into an expression “make the end link follow the target state vector”. The target state vector may be given in the unit of position (or attitude), or in the unit of velocity (or angular velocity). Or it may be given in the unit of acceleration (or angular acceleration), or in the unit of force (or torque). When the target state vector has six dimensions and it is given in the unit of position (attitude), the components of the target state vector are given by the six scalar values of the positions along with each of the coordinate axes in the orthogonal coordinate system; i.e. of the so-called roll angle, pitch angle, and yaw angle. Since the components of the target state vector may be expressed various unit systems, this specification uses, instead of using the expressions such as “target position vector”, “target velocity vector” and so forth, the term of “target state vector” without specifying a particular unit system. It should be noted that the “current state vector” of the end link is a vector in which the physical state of the end link is described in the same unit system as the target state vector.
Here, the dimensions of the target state vector has been described as being “not higher than N”, the reason of which lies in that the multi-joint robot in this specification may have the so-called redundant degree of freedom.
When the target state vector of not higher than N dimensions is given to the end link of the multi-joint robot having N degrees of freedom, the target drive quantity of each joint for moving the end link to follow the target state vector can be determined. The unit of the target drive quantity of each joint may be expressed in various unit systems, such as position (or angle), velocity (or angular velocity) and so forth. The expression “target drive quantity” in this specification is used in the meaning including “the target state” of a joint, such as a target joint angle and a target angular velocity of a joint. Therefore, in the present application, the expression “to drive a joint so as to make the current joint angle of the joint follow the target joint angle” may be expressed as “to make a joint follow the target drive quantity”.
It is well known that the target drive quantity of each joint for making the end link follow the target state vector can be derived from the so-called inverse transformation or the Jacobian matrix. When the target drive quantity of each joint is acquired, an actuator for driving the joint is controlled in such a manner that the current state (e.g. current joint angle, current joint angular velocity) of the joint follows the target drive quantity (e.g. target joint angle, target joint angular velocity) of the joint. Here, “driving the joint” means varying the relative position (attitude) between the links connected with the joint. In the case of a rotary joint, “driving the joint” means varying the angle (joint angle) between the links connected with the joint. In the case of a slide joint, it means varying the distance between the links connected with the joint.
Making the end link of the robot follow the target state vector will make the robot perform a predetermined work. For instance, by attaching an end effector such as a gripper or a welding tool to the end link of the robot and making the end link follow the target state vector varying with time, it is possible to move the end effector along a desired trajectory and perform a predetermine work. Alternately, in the case where the multi joint robot is a legged robot, it is possible to make the robot perform a working motion by making a foot link corresponding to the end link follow the target state vector.
While the robot is performing a work, loads acting on joints may increase. For example, when the robot continues the control of following the target state vector varying with time despite the robot having come into contact with an unexpected object, the robot may consequently push the object aside. While the robot is pushing the object aside, the loads acting on the joints may increase. Moreover, in a case where the robot performs a work of lifting an object by a gripper attached to the end link, if the weight of the lifted object is unexpectedly heavy, the loads acting on the joints may also increase unexpectedly. Among the loads acting on the joint, the load component acting on the drive axis of the joint can be reduced by providing an overload countermeasure such as a torque limiter to the actuator that drives the joint. The load acting on the drive axis of the joint is hereinafter taken as the object. Further, “overload” in the present application refers to a state in which the load acting on a joint exceeds a predetermined threshold. In other words, the “overload” in the present application is not limited to the case in which a load exceeding a physically permissible limit of a joint acts on the joint.
The torque limiter mounted on the joint as the overload countermeasure has two types: a mechanical torque limiter and a software-based torque limiter. The Japanese Patent Application Publication No. 2005-161469 discloses one example of the software-based torque limiter. The Japanese Patent Application Publication No. 2005-161469 discloses a technique that monitors a current applied to a motor of an actuator, and stops the supply of current to the motor when the applied current exceeds a predetermined level.